#pragma once

#include <iostream>
#include <type_traits>
#include <tuple>

#include "OMIT_AttrsTraits.h"
#include "OMIT_MeshAttributes.h"
#include "../../inc/TopoDS/OMIT_MeshForwardDecl.h"

namespace OMIT_NAMESPACE
{
    template <typename Traits, typename...TAttrs>
    class TAttrVert : public TVert<Traits>, public detail::_MeshAttrs_Traits<TAttrs...> {};

    template <typename Traits, typename...TAttrs>
    class TAttrEdge : public TEdge<Traits>, public detail::_MeshAttrs_Traits<TAttrs...> {};

    template <typename Traits, typename...TAttrs>
    class TAttrFace : public TFace<Traits>, public detail::_MeshAttrs_Traits<TAttrs...> {};

    template <typename Traits, typename...TAttrs>
    class TAttrHalfEdge : public TAttrHalfEdge<Traits>, public detail::_MeshAttrs_Traits<TAttrs...> {};
}